This invention relates generally to a device or apparatus for interconnecting electrical buses having independent clocks and in particular to a device for interconnecting two Universal Serial Buses (USBs) and for synchronizing independently to both of the clocks of the two buses.
A typical personal computer system has a main central processing unit (CPU) enclosed within a housing and one or more peripheral devices, such as a keyboard, a mouse, a monitor, a modem or a printer connected to the housing and electrically connected to the CPU by a unique connector and an electrical bus, respectively. These different connectors and electrical buses include serial buses, parallel buses and RS-232 ports. Typically, each of these different buses has different signaling requirements and different connectors to the housing. For example, a parallel bus has a certain physical connector and communicates bits of data in parallel (i.e., a predetermined number of bits at the same time). In contrast, a serial bus may have a different physical connector and may transmit bits of data in a serial manner (i.e., one bit at a time).
In order to connect a keyboard, printer, monitor, modem or mouse to the personal computer, it was often necessary to use several different types of local electrical buses and associated ports, such as a serial port for a modem, a parallel port for the printer, a keyboard port and a mouse port. This led to unnecessary complexity since each peripheral device may use a different bus. Therefore, a new universal serial bus (USB) was created to make the task of connecting peripheral devices to the computer easier. The USB replaces the multiple cables and multiple physical connectors typically needed with a single standardized connection system. The USB also permits peripheral devices to be connected and/or disconnected from the bus while the computer system is powered up, which eliminates the need with conventional buses to shut down and "re-boot" the computer every time that a peripheral device is connected or disconnected. The USB also permits a peripheral connected to the USB to be detected and then a configuration process for the device, known as enumeration, may be commenced.
Although the USB is typically used to connect peripherals to a computer, it is also possible to use the USB to communicate data between computers. Using the USB ports of two personal computers, it is possible and desirable to permit the two personal computers to be connected and to communicate with each other over the interconnected USBs. To accomplish this objective, it is necessary to provide a USB-to-USB connecting device which interfaces between the two USBs, and thus has two USB interface circuits. One of the key requirements for a USB interface is that it must be able to synchronize its own local clock to the data stream (and hence the USB clock) it receives over the USB. For a typical USB interface, the synchronization of the local clock to the data stream is not difficult to accomplish. In the USB specification, a digital phase locked loop may be used to synchronize the local clock to the data stream.
However, for a USB-to-USB connecting device which interconnects two USBs, the synchronization poses a problem. In particular, because the USB bus is intended to connect peripherals to a single computer, each USB may have its own independent clock which runs at the same approximate frequency (about 12 MHz), as defined by the USB specification, but which may be slightly different from all other USB clocks due to data jitter, clock phase differences and/or clock frequency variations. Therefore, since each of the USB buses connected to the USB-to-USB device are independent and may have a slightly different clock, there must be two separate synchronization mechanisms in order to ensure that the proper synchronization to both independent clocks occurs.
Thus, it is desirable to provide a device and method for interconnecting two independent USBs together in which the device synchronizes itself to the independent clocks of both USBs so that data may be communicated over the USBs, and it is to this end that the present invention is directed.